import { AxiosRequestConfig, AxiosPromise } from 'axios';

export interface Person {
  // 接口
  readonly id: number;
  name: string;
  age?: number;
}
interface IUser {//全部必传
  code: number;
  msg: string;
  data: Object;
  token: string;
}

// 做一个别名用type来约束,用Partial来映射每个类型为可选(只能影响第一层)
// 用&交叉成string或null
export type TUser = Partial<IUser> & string | null;


// 定义全局变量,重定义了Window接口 - (也有能力去可以修改js原生的方法)
declare global {
  interface Window {
    axios(config:AxiosRequestConfig):AxiosPromise<any>
  }
}

export interface IStoreState {
  home: object[],
  bLoading: boolean
}
